/* 目录打开、读取、刷新示例 */
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <sys/types.h>
#include <errno.h>

int main(void)
{
    struct dirent *dir;
    DIR *dirp;
    int ret = 0;

    /* 打开目录 */
    dirp = opendir("../chapter_04");
    if (NULL == dirp) {
        perror("opendir error!");
        exit(-1);
    }

    /* 循环读取目录流中的所有目录条目 */
    errno = 0;
    while (NULL != (dir = readdir(dirp))) {
        printf("%s %ld\n", dir->d_name, dir->d_ino);
    }
    if (0 != errno) {
        perror("readir error!");
        ret = -1;
        goto err;
    } else {
        printf("End Of directory!\n");
    }

err:
    closedir(dirp);
    exit(ret);
}